﻿using DataModels.Enums.OfflineStore;
using Utils;
using static DataModels.Enums.GeneralEnum;

namespace DataModels.Dto.OfflineStore
{
    public class GetOfflineStoreProductInfo : PageRequest
    {
        /// <summary>
        /// 是否推荐
        /// </summary>
        public Status? IsRecommend { get; set; }

        /// <summary>
        /// 分类UUID
        /// </summary>
        public Guid? OfflineStoreProductCategoryUUID { get; set; }
    }

    public class GetOfflineStoreProductDto
    {
        public Guid UUID { get; set; }
        /// <summary>
        /// 主图URL
        /// </summary>
        public string ImageUrl { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public decimal Longitude { get; set; }
        /// <summary>
        /// 纬度
        /// </summary>
        public decimal Latitude { get; set; }

        /// <summary>
        /// 商品标题
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// 商品价格 - 付款的价格
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// 原始价格 - 非购买价格
        /// </summary>
        public decimal OriginalPrice { get; set; }

        /// <summary>
        /// 店铺Logo URL
        /// </summary>
        public string LogoUrl { get; set; }

        /// <summary>
        /// 店铺名称
        /// </summary>
        public string Name { get; set; }
    }


    public class GetOfflineStoreProductDetail
    {
        public Guid OfflineStoreProductUUID { get; set; }
        /// <summary>
        /// 主图URL
        /// </summary>
        public string ImageUrl { get; set; }

        /// <summary>
        /// 图片列表URL
        /// </summary>
        public List<string> ImageUrls { get; set; } = [];

        /// <summary>
        /// 商品标题
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// 商品价格 - 付款的价格
        /// </summary>
        public decimal Price { get; set; }

        /// <summary>
        /// 原始价格 - 非购买价格
        /// </summary>
        public decimal OriginalPrice { get; set; }

        /// <summary>
        /// 店铺UUID
        /// </summary>
        public Guid OfflineStoreStoreUUID { get; set; }

        /// <summary>
        /// 店铺Logo URL
        /// </summary>
        public string LogoUrl { get; set; }

        /// <summary>
        /// 店铺名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 营业时间
        /// </summary>
        public string BusinessHours { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string PhoneNumber { get; set; }

        /// <summary>
        /// 店铺地址
        /// </summary>
        public string Address { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public decimal Longitude { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public decimal Latitude { get; set; }
    }


    public class SubmitOfflineStoreOrderInfo
    {
        /// <summary>
        /// 商品UUID
        /// </summary>
        [GeneralRequired]
        public Guid OfflineStoreProductUUID { get; set; }

        /// <summary>
        /// 联系人姓名
        /// </summary>
        public string? ContactPerson { get; set; }

        /// <summary>
        /// 联系人性别
        /// </summary>
        public string? ContactGender { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string? ContactPhone { get; set; }

        /// <summary>
        /// 购买数量
        /// </summary>
        public int Count { get; set; } = 1;

        /// <summary>
        /// 优惠券
        /// </summary>
        public Guid? PaymentCouponUUID { get; set; }
    }

    public class OfflineStoreOrderPaymentInfo
    {
        public Guid OfflineStoreOrderUUID { get; set; }
    }

    public class GetOrderInfo : PageRequest
    {
        public OfflineStoreOrderStatus? OrderStatus { get; set; }
    }
}
